{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 天气数据的数据分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "path = 'E:/weather40d_without_index.csv'\n",
    "df = pd.read_csv(path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>max_temp</th>\n",
       "      <th>min_temp</th>\n",
       "      <th>rain_poss</th>\n",
       "      <th>area</th>\n",
       "      <th>city</th>\n",
       "      <th>province_name</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20210425</td>\n",
       "      <td>22</td>\n",
       "      <td>12</td>\n",
       "      <td>17%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20210426</td>\n",
       "      <td>22</td>\n",
       "      <td>9</td>\n",
       "      <td>20%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20210427</td>\n",
       "      <td>21</td>\n",
       "      <td>10</td>\n",
       "      <td>13%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20210428</td>\n",
       "      <td>22</td>\n",
       "      <td>11</td>\n",
       "      <td>27%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20210429</td>\n",
       "      <td>21</td>\n",
       "      <td>10</td>\n",
       "      <td>27%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       date  max_temp  min_temp rain_poss area city province_name\n",
       "0  20210425        22        12       17%   北京   北京            北京\n",
       "1  20210426        22         9       20%   北京   北京            北京\n",
       "2  20210427        21        10       13%   北京   北京            北京\n",
       "3  20210428        22        11       27%   北京   北京            北京\n",
       "4  20210429        21        10       27%   北京   北京            北京"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 01每日温差\n",
    "df['diff'] = df['max_temp'] - df['min_temp']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>max_temp</th>\n",
       "      <th>min_temp</th>\n",
       "      <th>rain_poss</th>\n",
       "      <th>area</th>\n",
       "      <th>city</th>\n",
       "      <th>province_name</th>\n",
       "      <th>diff</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20210425</td>\n",
       "      <td>22</td>\n",
       "      <td>12</td>\n",
       "      <td>17%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20210426</td>\n",
       "      <td>22</td>\n",
       "      <td>9</td>\n",
       "      <td>20%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20210427</td>\n",
       "      <td>21</td>\n",
       "      <td>10</td>\n",
       "      <td>13%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20210428</td>\n",
       "      <td>22</td>\n",
       "      <td>11</td>\n",
       "      <td>27%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20210429</td>\n",
       "      <td>21</td>\n",
       "      <td>10</td>\n",
       "      <td>27%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       date  max_temp  min_temp rain_poss area city province_name  diff\n",
       "0  20210425        22        12       17%   北京   北京            北京    10\n",
       "1  20210426        22         9       20%   北京   北京            北京    13\n",
       "2  20210427        21        10       13%   北京   北京            北京    11\n",
       "3  20210428        22        11       27%   北京   北京            北京    11\n",
       "4  20210429        21        10       27%   北京   北京            北京    11"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3135"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(df['area'].unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>date</th>\n",
       "      <th>max_temp</th>\n",
       "      <th>min_temp</th>\n",
       "      <th>diff</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>丁青</td>\n",
       "      <td>20210605</td>\n",
       "      <td>20</td>\n",
       "      <td>6</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>七台河</td>\n",
       "      <td>20210605</td>\n",
       "      <td>24</td>\n",
       "      <td>13</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>七星</td>\n",
       "      <td>20210605</td>\n",
       "      <td>30</td>\n",
       "      <td>22</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>七星关</td>\n",
       "      <td>20210605</td>\n",
       "      <td>27</td>\n",
       "      <td>17</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>七里河</td>\n",
       "      <td>20210605</td>\n",
       "      <td>29</td>\n",
       "      <td>17</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3130</th>\n",
       "      <td>龙胜</td>\n",
       "      <td>20210605</td>\n",
       "      <td>29</td>\n",
       "      <td>21</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3131</th>\n",
       "      <td>龙里</td>\n",
       "      <td>20210605</td>\n",
       "      <td>25</td>\n",
       "      <td>18</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3132</th>\n",
       "      <td>龙门</td>\n",
       "      <td>20210605</td>\n",
       "      <td>31</td>\n",
       "      <td>23</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3133</th>\n",
       "      <td>龙陵</td>\n",
       "      <td>20210605</td>\n",
       "      <td>24</td>\n",
       "      <td>17</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3134</th>\n",
       "      <td>龙马潭</td>\n",
       "      <td>20210605</td>\n",
       "      <td>29</td>\n",
       "      <td>21</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3135 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     area      date  max_temp  min_temp  diff\n",
       "0      丁青  20210605        20         6    16\n",
       "1     七台河  20210605        24        13    12\n",
       "2      七星  20210605        30        22     8\n",
       "3     七星关  20210605        27        17    12\n",
       "4     七里河  20210605        29        17    21\n",
       "...   ...       ...       ...       ...   ...\n",
       "3130   龙胜  20210605        29        21     9\n",
       "3131   龙里  20210605        25        18    10\n",
       "3132   龙门  20210605        31        23     8\n",
       "3133   龙陵  20210605        24        17    13\n",
       "3134  龙马潭  20210605        29        21    11\n",
       "\n",
       "[3135 rows x 5 columns]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 02查看40地方天气温最高的是哪一天\n",
    "df.groupby('area').max('max_temp').reset_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "18"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "df[df['province_name'] == '浙江']['max_temp'].min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>province_name</th>\n",
       "      <th>date</th>\n",
       "      <th>max_temp</th>\n",
       "      <th>min_temp</th>\n",
       "      <th>diff</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>青海</td>\n",
       "      <td>20210425</td>\n",
       "      <td>3</td>\n",
       "      <td>-10</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>山西</td>\n",
       "      <td>20210425</td>\n",
       "      <td>3</td>\n",
       "      <td>-5</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>内蒙古</td>\n",
       "      <td>20210425</td>\n",
       "      <td>4</td>\n",
       "      <td>-7</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>西藏</td>\n",
       "      <td>20210425</td>\n",
       "      <td>4</td>\n",
       "      <td>-9</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>四川</td>\n",
       "      <td>20210425</td>\n",
       "      <td>5</td>\n",
       "      <td>-7</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>河北</td>\n",
       "      <td>20210425</td>\n",
       "      <td>9</td>\n",
       "      <td>-2</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>甘肃</td>\n",
       "      <td>20210425</td>\n",
       "      <td>10</td>\n",
       "      <td>-4</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>新疆</td>\n",
       "      <td>20210425</td>\n",
       "      <td>10</td>\n",
       "      <td>-4</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>黑龙江</td>\n",
       "      <td>20210425</td>\n",
       "      <td>10</td>\n",
       "      <td>-7</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>云南</td>\n",
       "      <td>20210425</td>\n",
       "      <td>10</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>山东</td>\n",
       "      <td>20210425</td>\n",
       "      <td>11</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>安徽</td>\n",
       "      <td>20210425</td>\n",
       "      <td>12</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>吉林</td>\n",
       "      <td>20210425</td>\n",
       "      <td>12</td>\n",
       "      <td>-1</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>辽宁</td>\n",
       "      <td>20210425</td>\n",
       "      <td>13</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>陕西</td>\n",
       "      <td>20210425</td>\n",
       "      <td>15</td>\n",
       "      <td>2</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>湖南</td>\n",
       "      <td>20210425</td>\n",
       "      <td>15</td>\n",
       "      <td>9</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>宁夏</td>\n",
       "      <td>20210425</td>\n",
       "      <td>15</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>贵州</td>\n",
       "      <td>20210425</td>\n",
       "      <td>16</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>江西</td>\n",
       "      <td>20210425</td>\n",
       "      <td>17</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>北京</td>\n",
       "      <td>20210425</td>\n",
       "      <td>17</td>\n",
       "      <td>5</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>浙江</td>\n",
       "      <td>20210425</td>\n",
       "      <td>18</td>\n",
       "      <td>12</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>湖北</td>\n",
       "      <td>20210425</td>\n",
       "      <td>18</td>\n",
       "      <td>9</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>天津</td>\n",
       "      <td>20210425</td>\n",
       "      <td>18</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>福建</td>\n",
       "      <td>20210425</td>\n",
       "      <td>19</td>\n",
       "      <td>11</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>重庆</td>\n",
       "      <td>20210425</td>\n",
       "      <td>19</td>\n",
       "      <td>11</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>江苏</td>\n",
       "      <td>20210425</td>\n",
       "      <td>20</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>河南</td>\n",
       "      <td>20210425</td>\n",
       "      <td>21</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>上海</td>\n",
       "      <td>20210425</td>\n",
       "      <td>21</td>\n",
       "      <td>12</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>广西</td>\n",
       "      <td>20210425</td>\n",
       "      <td>23</td>\n",
       "      <td>16</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>广东</td>\n",
       "      <td>20210425</td>\n",
       "      <td>23</td>\n",
       "      <td>16</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>台湾</td>\n",
       "      <td>20210425</td>\n",
       "      <td>25</td>\n",
       "      <td>18</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>澳门</td>\n",
       "      <td>20210425</td>\n",
       "      <td>27</td>\n",
       "      <td>22</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>香港</td>\n",
       "      <td>20210425</td>\n",
       "      <td>28</td>\n",
       "      <td>22</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>海南</td>\n",
       "      <td>20210425</td>\n",
       "      <td>29</td>\n",
       "      <td>21</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   province_name      date  max_temp  min_temp  diff\n",
       "31            青海  20210425         3       -10     8\n",
       "11            山西  20210425         3        -5     7\n",
       "2            内蒙古  20210425         4        -7     6\n",
       "26            西藏  20210425         4        -9     5\n",
       "6             四川  20210425         5        -7     3\n",
       "17            河北  20210425         9        -2     6\n",
       "24            甘肃  20210425        10        -4     7\n",
       "14            新疆  20210425        10        -4     7\n",
       "33           黑龙江  20210425        10        -7     6\n",
       "1             云南  20210425        10         0     5\n",
       "10            山东  20210425        11         7     4\n",
       "9             安徽  20210425        12         6     4\n",
       "5             吉林  20210425        12        -1     6\n",
       "28            辽宁  20210425        13         1     4\n",
       "30            陕西  20210425        15         2     6\n",
       "22            湖南  20210425        15         9     3\n",
       "8             宁夏  20210425        15         0     8\n",
       "27            贵州  20210425        16         2     3\n",
       "16            江西  20210425        17         5     3\n",
       "3             北京  20210425        17         5     9\n",
       "19            浙江  20210425        18        12     2\n",
       "21            湖北  20210425        18         9     3\n",
       "7             天津  20210425        18         6     5\n",
       "25            福建  20210425        19        11     2\n",
       "29            重庆  20210425        19        11     4\n",
       "15            江苏  20210425        20        10     5\n",
       "18            河南  20210425        21         7     6\n",
       "0             上海  20210425        21        12     3\n",
       "13            广西  20210425        23        16     3\n",
       "12            广东  20210425        23        16     2\n",
       "4             台湾  20210425        25        18     6\n",
       "23            澳门  20210425        27        22     5\n",
       "32            香港  20210425        28        22     5\n",
       "20            海南  20210425        29        21     2"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 03查看40天气温各省最高气温最低的一天，升序排列\n",
    "df.groupby('province_name').min('max_temp').reset_index().sort_values('max_temp')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "area\n",
       "久治     2\n",
       "井冈山    2\n",
       "保亭     1\n",
       "兴义     1\n",
       "兴宁     1\n",
       "勐海     1\n",
       "墨脱     1\n",
       "壤塘     3\n",
       "大方     1\n",
       "宁海     1\n",
       "富源     1\n",
       "小金     1\n",
       "屏边     3\n",
       "峨眉山    4\n",
       "平坝     1\n",
       "康定     1\n",
       "恩平     1\n",
       "普安     1\n",
       "松潘     1\n",
       "汝城     1\n",
       "江城     3\n",
       "沧源     1\n",
       "波密     1\n",
       "玉树     1\n",
       "瑞丽     1\n",
       "瓮安     1\n",
       "甘德     2\n",
       "盘州     1\n",
       "石渠     1\n",
       "福贡     2\n",
       "称多     1\n",
       "米林     2\n",
       "索县     1\n",
       "红原     2\n",
       "绿春     2\n",
       "罗平     1\n",
       "色达     1\n",
       "西盟     3\n",
       "达日     1\n",
       "道真     1\n",
       "金平     7\n",
       "错那     2\n",
       "镇雄     1\n",
       "阳春     1\n",
       "阿坝     4\n",
       "陆川     1\n",
       "陇川     1\n",
       "靖西     1\n",
       "韶关     1\n",
       "马关     1\n",
       "马尔康    1\n",
       "黑水     3\n",
       "黔西南    1\n",
       "龙南     1\n",
       "龙门     1\n",
       "Name: rain_poss, dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 04 查看各地区的40降水天数（假设几率大于80为降雨）\n",
    "rainy_day = df[df['rain_poss'] > '80%']\n",
    "rainy_day.groupby('area')['rain_poss'].count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>diff</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2116</th>\n",
       "      <td>琼结</td>\n",
       "      <td>18.595238</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>717</th>\n",
       "      <td>塔中</td>\n",
       "      <td>17.761905</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>漠河</td>\n",
       "      <td>17.238095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1572</th>\n",
       "      <td>根河</td>\n",
       "      <td>17.166667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1418</th>\n",
       "      <td>新龙</td>\n",
       "      <td>17.166667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1136</th>\n",
       "      <td>平潭</td>\n",
       "      <td>4.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2552</th>\n",
       "      <td>西沙</td>\n",
       "      <td>3.809524</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1057</th>\n",
       "      <td>崇武</td>\n",
       "      <td>3.809524</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>三沙</td>\n",
       "      <td>3.809524</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3077</th>\n",
       "      <td>黄岩岛</td>\n",
       "      <td>3.809524</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3135 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     area       diff\n",
       "2116   琼结  18.595238\n",
       "717    塔中  17.761905\n",
       "2014   漠河  17.238095\n",
       "1572   根河  17.166667\n",
       "1418   新龙  17.166667\n",
       "...   ...        ...\n",
       "1136   平潭   4.000000\n",
       "2552   西沙   3.809524\n",
       "1057   崇武   3.809524\n",
       "25     三沙   3.809524\n",
       "3077  黄岩岛   3.809524\n",
       "\n",
       "[3135 rows x 2 columns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 05查看各区域温差均值\n",
    "pd.DataFrame(df.groupby('area')['diff'].mean()).reset_index().sort_values('diff', ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "province_name\n",
       "上海     16\n",
       "云南     40\n",
       "内蒙古    40\n",
       "北京     27\n",
       "台湾     12\n",
       "吉林     29\n",
       "四川     45\n",
       "天津     27\n",
       "宁夏     32\n",
       "安徽     26\n",
       "山东     25\n",
       "山西     38\n",
       "广东     20\n",
       "广西     20\n",
       "新疆     43\n",
       "江苏     20\n",
       "江西     28\n",
       "河北     36\n",
       "河南     26\n",
       "浙江     19\n",
       "海南     15\n",
       "湖北     23\n",
       "湖南     23\n",
       "澳门      8\n",
       "甘肃     36\n",
       "福建     23\n",
       "西藏     39\n",
       "贵州     31\n",
       "辽宁     30\n",
       "重庆     20\n",
       "陕西     30\n",
       "青海     37\n",
       "香港      9\n",
       "黑龙江    37\n",
       "dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 06查看各省温差（一个省的最高减最低）\n",
    "df.groupby('province_name')['max_temp'].max() - df.groupby('province_name')['min_temp'].min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "province_name\n",
       "上海     24.787879\n",
       "云南     26.769450\n",
       "内蒙古    21.767526\n",
       "北京     26.439683\n",
       "台湾     27.320635\n",
       "吉林     21.165306\n",
       "四川     25.758251\n",
       "天津     26.383117\n",
       "宁夏     23.880952\n",
       "安徽     26.570848\n",
       "山东     25.649725\n",
       "山西     24.807067\n",
       "广东     29.299899\n",
       "广西     29.416478\n",
       "新疆     24.959465\n",
       "江苏     25.728266\n",
       "江西     27.316964\n",
       "河北     26.207768\n",
       "河南     27.133167\n",
       "浙江     26.005714\n",
       "海南     32.513825\n",
       "湖北     26.822360\n",
       "湖南     26.636816\n",
       "澳门     28.928571\n",
       "甘肃     22.131566\n",
       "福建     27.255952\n",
       "西藏     20.594104\n",
       "贵州     24.608984\n",
       "辽宁     22.630519\n",
       "重庆     26.532738\n",
       "陕西     25.453592\n",
       "青海     16.388140\n",
       "香港     29.666667\n",
       "黑龙江    19.949550\n",
       "Name: max_temp, dtype: float64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 07查看各省气温均值\n",
    "df.groupby('province_name')['max_temp'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 添加每日前一天和后一天的最高温\n",
    "df['pre_max_temp'] = df['max_temp'].shift(1)\n",
    "df['next_max_temp'] = df['max_temp'].shift(-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>max_temp</th>\n",
       "      <th>min_temp</th>\n",
       "      <th>rain_poss</th>\n",
       "      <th>area</th>\n",
       "      <th>city</th>\n",
       "      <th>province_name</th>\n",
       "      <th>diff</th>\n",
       "      <th>pre_max_temp</th>\n",
       "      <th>next_max_temp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20210425</td>\n",
       "      <td>22</td>\n",
       "      <td>12</td>\n",
       "      <td>17%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>10</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20210426</td>\n",
       "      <td>22</td>\n",
       "      <td>9</td>\n",
       "      <td>20%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>13</td>\n",
       "      <td>22.0</td>\n",
       "      <td>21.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20210427</td>\n",
       "      <td>21</td>\n",
       "      <td>10</td>\n",
       "      <td>13%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>11</td>\n",
       "      <td>22.0</td>\n",
       "      <td>22.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20210428</td>\n",
       "      <td>22</td>\n",
       "      <td>11</td>\n",
       "      <td>27%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>11</td>\n",
       "      <td>21.0</td>\n",
       "      <td>21.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20210429</td>\n",
       "      <td>21</td>\n",
       "      <td>10</td>\n",
       "      <td>27%</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>11</td>\n",
       "      <td>22.0</td>\n",
       "      <td>23.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       date  max_temp  min_temp rain_poss area city province_name  diff  \\\n",
       "0  20210425        22        12       17%   北京   北京            北京    10   \n",
       "1  20210426        22         9       20%   北京   北京            北京    13   \n",
       "2  20210427        21        10       13%   北京   北京            北京    11   \n",
       "3  20210428        22        11       27%   北京   北京            北京    11   \n",
       "4  20210429        21        10       27%   北京   北京            北京    11   \n",
       "\n",
       "   pre_max_temp  next_max_temp  \n",
       "0           NaN           22.0  \n",
       "1          22.0           21.0  \n",
       "2          22.0           22.0  \n",
       "3          21.0           21.0  \n",
       "4          22.0           23.0  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 08求气温的日变化(和前一天比)\n",
    "df['diff_max_pre'] = df['max_temp'] - df['pre_max_temp']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 09绘图查看杭州40天的气温变化差值\n",
    "hangzhou = df[df['area'] == '杭州']\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "index = list(map(lambda x: str(x),hangzhou['date'])) #日期转为str型\n",
    "plt.plot(index, hangzhou['diff_max_pre'])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 10看看最适合生活的城市：气温变化小，均温靠近23摄氏度\n",
    "diff_mean = df.groupby('area')['diff_max_pre'].mean().abs().sort_values() # 气温变化均值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['confort_abs'] = abs(df['max_temp'] - df['min_temp'] - 23)  # 通过差值打分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "confort_sum = df.groupby('area')['confort_abs'].sum().sort_values() # 舒适程度（科学上23度人体比较舒适）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 把二者归一化\n",
    "diff_mean = diff_mean / diff_mean.max()\n",
    "confort_sum = confort_sum / confort_sum.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 得到一个粗略的得分\n",
    "score = confort_sum + diff_mean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2116</th>\n",
       "      <td>琼结</td>\n",
       "      <td>0.081743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>漠河</td>\n",
       "      <td>0.100415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>906</th>\n",
       "      <td>定襄</td>\n",
       "      <td>0.115353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2132</th>\n",
       "      <td>甘泉</td>\n",
       "      <td>0.117427</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>273</th>\n",
       "      <td>伊州</td>\n",
       "      <td>0.121992</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1044</th>\n",
       "      <td>峨眉山</td>\n",
       "      <td>1.173121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264</th>\n",
       "      <td>仲巴</td>\n",
       "      <td>1.193776</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1188</th>\n",
       "      <td>康马</td>\n",
       "      <td>1.193776</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>226</th>\n",
       "      <td>五台山</td>\n",
       "      <td>1.203366</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>241</th>\n",
       "      <td>亚东</td>\n",
       "      <td>1.216598</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3135 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     area         0\n",
       "2116   琼结  0.081743\n",
       "2014   漠河  0.100415\n",
       "906    定襄  0.115353\n",
       "2132   甘泉  0.117427\n",
       "273    伊州  0.121992\n",
       "...   ...       ...\n",
       "1044  峨眉山  1.173121\n",
       "264    仲巴  1.193776\n",
       "1188   康马  1.193776\n",
       "226   五台山  1.203366\n",
       "241    亚东  1.216598\n",
       "\n",
       "[3135 rows x 2 columns]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 得到排名\n",
    "pd.DataFrame(score).reset_index().sort_values(0)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "两者相加最低的最适合居住，结论是：琼结最适合"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
